package com.sl.au.service;
import java.util.List;
import java.util.Map;

import com.sl.au.entity.Module;
import com.sl.au.entity.ModuleInfo;
import com.sl.au.entity.Role;
import com.sl.au.repository.ModuleRepository;

public interface ModuleService extends BaseService {
    ModuleRepository getRepository();
    /**
     * 分页处理
     */
    List<Module>   getPage(int start, int length, String key ,String orderName ,String dir);
    /**
     *得到所有模型
    */
    List<Module> getModules(int start, int length,String key,String orderName ,String dir);
    /**
     * 得到所有节点
     *
     * @param menuId
     * @return
     */
    List<Module> getAllNodes(String menuId);
    /**
     * 得到下一个节点
     *
     * @param pId
     * @return
     */
    List<Module> getNextNodes(String pId);
    /**
     * 得到节点集合
     *
     * @param node
     * @return
     */
    List<Map<String,Object>> getNodeMap(List<Module> node);
    /**
     * 保存节点
     *
     * @param menuId
     * @param parentId
     * @param id
     * @param node
     * @return
     */
    void saveNode(String menuId,String parentId,String id,Module node);
    /**
     * 设置父节点
     *
     * @param parentId
     * @param aTrue
     * @return
     */
    void setParentNode(String parentId, String aTrue);
    /**
     * 删除节点
     *
     * @param ids
     * @return
     */
    void deleteNodes(String[] ids);
    /**
     * 确认是否为父节点
     *
     * @param selectPId
     * @return
     */
    int sureParent(String selectPId);
    
    /**得到当前用户角色下所有菜单模块，用于生成左边菜单栏
     * @param user
     * @return
     */
    public List<ModuleInfo> getModulesInfo(Role Role);
    
    /**得到简化的角色对应功能模块，主要用于移动端
     * @param roleId
     * @return
     */
    public List<Module> getSimpleModulesByRole(String roleId);
    
}
